<?php

namespace CHOMP\SGIBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Doctrine\ORM\EntityRepository;

class PermisoChompType extends AbstractType
{
        /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // TO DO: get valores posibles para empresa
        //To Do: mostrar campo 'campo' sólo si seleccionan objeto = incidente
        $builder
            ->add('accion', 'choice', array(
                                    'choices'   => array('1' => 'Ver', '2' => 'Editar', '3' => 'Crear'),
                                    'required'  => true,
                                    'multiple'  => false,
                                    'empty_data' => 'Ver',
                                    
                                    )
                 )
            ->add('objeto', 'choice', array (
                                        'choices'   => array('Seguridad' => 'Seguridad', 
                                                             'Empresa' => 'Empresas',
                                                             'Incidente' => 'Incidentes',
                                                             'Reporte' => 'Reportes',
                                                             'Timesheet' => 'Timesheet'),
                                        'required'  => true,
                                    )
            //->addEventListener(nombre,listener,priority)
                 ) 
            ->add('campo', 'choice', array (
                                     'required'  => true,
                                     'choices'   => array(
                                                        'ALL' => 'Todos',
                                                        'Estado' => 'Estado', 
                                                        'Grupo Soporte' => 'Grupo Soporte',
                                                        'Prioridad' => 'Prioridad',
                                                        'Comentarios' => 'Comentarios',
                                                        ),
                                     //   'mapped' => false,
                                    )
                 )
            ->add('empresa', 'entity', array (
                                                'label' => 'Empresa',
                                                'class' => 'CHOMPSGIBundle:Empresa',
                                                'query_builder' => function(EntityRepository $er){
                                                    //return $er->getAllActivas();
                                                    return $er->createQueryBuilder('u') 
                                                              -> where('u.borrado = 0')
                                                              -> orderBy('u.nombre', 'ASC');
                                                },
                                                'required'  => true,
                                                'empty_value' => 'Todas',
                                                'property' => 'nombre',
                                             )
                                
                                    
                 )
			->add('save', 'submit');
    }
    
    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'CHOMP\SGIBundle\PermisoChomp\PermisoChomp',
            'validation_groups' => 'false'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'chomp_sgibundle_permisoChomp';
    }
}
